import common.TreeNode;

/**
 * @author tmh
 * @date 2024/10/7 19:12
 * @description 可以用最简单的一个二叉树来举例子，比如说 1，2，3  最后代码结束之后
 * left是2，right是3，都不为空，那么最后的结果就是根节点是1
 */
public class T236二叉树的最近公共祖先 {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if (root==null||root==p||root==q){
            return root;
        }
        //左右中的遍历--有点像从下往上的样子
        TreeNode left  = lowestCommonAncestor(root.left,p,q);
        TreeNode right  = lowestCommonAncestor(root.right,p,q);
        if (left==null){
            return right;
        }
        if (right==null){
            return left;
        }
        return root;
    }
}
